//
//  NSDictionary+MZCompatible.h
//  MZToolkitDemo
//
//  Created by Chris Yang on 2017/2/16.
//  Copyright © 2017年 Chris Yang. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, MZSafeDicError) {
    
    MZSafeDicErrorUnknown = -1,
    
    MZSafeDicErrorInvalidedKey,         /* 无效key值 */
    MZSafeDicErrorGetUnexpectedClass,   /* 非期望的Class类型 */
};

@interface NSDictionary(MZCompatible)

/* 是否允许异常默认处理的开关（默认开启）
 * 开关开启：反馈异常值（如nil）时给出对应类型的默认0值
 * 开关关闭：反馈异常值（如nil）时给出一个NSError
 */
+ (BOOL)enableDefaultVal;
+ (void)setEnableDefaultVal:(BOOL)enabled;

/* 取特定类型的值 */
- (id)mzNumberObjectForKey:(id<NSCopying>)key __attribute__((deprecated("不久后此方法会被删除，请使用YYCategories中方法numberValueForKey:default:来替换")));
- (id)mzDecimalNumberObjectForKey:(id<NSCopying>)key;
- (id)mzStringObjectForKey:(id<NSCopying>)key __attribute__((deprecated("不久后此方法会被删除，请使用YYCategories中方法stringValueForKey:default:来替换")));
- (id)mzArrayObjectForKey:(id<NSCopying>)key;
- (id)mzDictionaryObjectForKey:(id<NSCopying>)key;

@end
